import socket
from threading import Thread
from time import sleep
import struct

def GetHostIP():
    try:
        Socke = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        Socke.connect(('8.8.8.8', 80))
        IP = Socke.getsockname()[0]
    finally:
        Socke.close()
 
    print(IP)
    return IP

def send_data():
	IP_daar = GetHostIP()
	while True:
	    # 1. 创建udp套接字
	    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

	    # 2. 准备接收方的地址        
	    dest_addr = (IP_daar, 6666)  # 注意 是元组，ip是字符串，端口是数字

	    # 3. 从键盘获取数据
	    lat = 1
	    lon = 13.435456
	    # alt = 3.5657732

	    send_data = struct.pack('!if', lat, lon)
	    # send_data = b'\x08\x00\x00\x00\x81@\x02\x00\x1d\x00\x00\x00\x10'

	    # send_data = input("请输入要发送的数据:")

	    # 4. 发送数据到指定的电脑上的指定程序中
	    udp_socket.sendto(send_data, dest_addr)
	    print("发送给客户端 %s 的数据: %s\n" % (dest_addr, send_data))
	    sleep(1)

	    # 5. 关闭套接字
	    udp_socket.close()

if __name__ == "__main__":
    send_data()